﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Linq;

namespace LockCrypt.Core {
    public interface IGroup :INestable {
        IList<IGroup> Groups { get; set; }
        IList<IAccount> Accounts { get; set; }
        IList<INestable> Children { get; }
        int SortIndex { get; set; }

        IGroup FindGroup(string groupId);
        IEnumerable<IGroup> Flatten();
        IGroup Clone();

        XElement ToXElement();
    }
}
